跳到主要内容

Mybatis Plus代码生成

本文代码来自MyBatis Plus官网

  1. 配置依赖
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: '3.5.4'
implementation group: 'com.baomidou', name: 'mybatis-plus-generator', version: '3.5.6'
// change before version 2.3.9
// maybe have a error in init,so update the version
implementation group: 'freemarker', name: 'freemarker', version: '2.3.31'


compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

  1. 编写生成器类

演示例子,执行 main 方法控制台输入 模块名 表名 回车自动生成对应项目目录中

public class NewCodeGenerator {

static final String URL = "jdbc:oracle:thin:@192.168.3.161:1521:jc";
static final String USERNAME = "jc";
static final String PASSWORD = "123456";

public static void main(String[] args) {
generate();
}


private static void generate() {
FastAutoGenerator.create(URL, USERNAME, PASSWORD)
.globalConfig(builder ->
builder.author("xx")
.commentDate("yyyy-MM-dd")
.disableOpenDir()
.outputDir(System.getProperty("user.dir")+"\\src\\main\\java")
.dateType(DateType.TIME_PACK)
.disableServiceInterface()
)
.packageConfig(builder ->
builder.parent("com.whalefall541.mybatisplus.samples.generator")
.moduleName("system")
.entity("po")
.serviceImpl("service.impl")
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir")+"\\src\\main\\resources\\mapper\\test")))

.strategyConfig(builder ->
builder.addInclude("table_a")
.controllerBuilder()
.enableFileOverride()
.enableRestStyle()
.disable()

.entityBuilder()
.enableFileOverride()
.enableLombok()
.disableSerialVersionUID()
.enableTableFieldAnnotation()
.enableActiveRecord()
.enableFileOverride()
// .addTableFills(new Column("timecolunmn", FieldFill.INSERT))
.formatFileName("%sPO")

.serviceBuilder()
.disable()
.enableFileOverride()
.formatServiceImplFileName("%sServiceImpl")

.mapperBuilder()
.enableFileOverride()
.mapperAnnotation(Mapper.class)

).templateEngine(new FreemarkerTemplateEngine()).execute();
}

}

协议
本作品代码部分采用 Apache 2.0协议 进行许可。遵循许可的前提下,你可以自由地对代码进行修改,再发布,可以将代码用作商业用途。但要求你:
  • 署名:在原有代码和衍生代码中,保留原作者署名及代码来源信息。
  • 保留许可证:在原有代码和衍生代码中,保留Apache 2.0协议文件。
本作品文档部分采用 知识共享署名 4.0 国际许可协议 进行许可。遵循许可的前提下,你可以自由地共享,包括在任何媒介上以任何形式复制、发行本作品,亦可以自由地演绎、修改、转换或以本作品为基础进行二次创作。但要求你:
  • 署名:应在使用本文档的全部或部分内容时候,注明原作者及来源信息。
  • 非商业性使用:不得用于商业出版或其他任何带有商业性质的行为。如需商业使用,请联系作者。
  • 相同方式共享的条件:在本文档基础上演绎、修改的作品,应当继续以知识共享署名 4.0国际许可协议进行许可。